﻿Imports Control_Vuelos_BL
Imports Control_Vuelos_BE
Imports DevExpress.XtraGrid.Views.Grid
Imports DevExpress.XtraEditors

Public Class frmPer_Movimiento
    Inherits frmBaseMantenimiento

    ReadOnly oMovimiento As New Movimiento_PersonalBL()
    ReadOnly oPasajero As New PasajeroBL()
    Private vReservaBE As New V_ReservaBE()
    Private MPasajeroBE As New M_PasajeroBE()
    ReadOnly oMaestros As New MaestrosBL()
    Private vReservaBL As New V_ReservaBL()
    Private _MovimientoBE As New MovimientoPersonalBE
    Private p_Regimen As Double
    Private p_FacMotivoExceso As Double
    Private p_CodPasajero As Integer
    Private p_CodReservaRetorno As Integer

    Private Sub frmPer_Movimiento_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        AddHandler ModMov_Personal1.RepositoryItemButtonEdit1.ButtonClick, AddressOf prl_ClickReserva
        AddHandler ModMov_Personal1.AdvBandedGridView1.ValidatingEditor, AddressOf prl_ValidarGrid
        AddHandler ModMov_Personal1.RepositoryItemLookUpEdit3.EditValueChanged, AddressOf prl_ValidarRegimen
        AddHandler ModMov_Personal1.RepositoryItemLookUpEdit2.EditValueChanged, AddressOf prl_ValidarMotivoExceso
        AddHandler ModMov_Personal1.AdvBandedGridView1.FocusedRowChanged, AddressOf prl_CambioRegistro
        AddHandler BarBtnGrabar.ItemClick, AddressOf prl_GrabarMovimiento

        prl_GetMovimientos()
        ModMov_Personal1.RepositoryItemLookUpEdit1.DataSource = oMaestros.pr_GetLugarDestinoVuelo()
        ModMov_Personal1.RepositoryItemLookUpEdit2.DataSource = oMaestros.pr_GetMotivoExceso()
        ModMov_Personal1.RepositoryItemLookUpEdit3.DataSource = oMaestros.pr_GetRegimen()

        ' Varibales
        p_Regimen = 1.0
        p_FacMotivoExceso = 0.0
    End Sub

    Public Sub prl_GetMovimientos()
        ModMov_Personal1.GridControl1.DataSource = oMovimiento.pr_MovimientoPersonal(p_coduser)
    End Sub

    Public Sub prl_ValidarMotivoExceso(sender As Object, e As System.EventArgs)
        Dim edit As LookUpEdit = TryCast(sender, LookUpEdit)
        Dim rowView As DataRowView = TryCast(edit.Properties.GetDataSourceRowByKeyValue(edit.EditValue), DataRowView)
        If rowView IsNot Nothing Then
            Dim row As DataRow = rowView.Row
            If Not row Is Nothing Then
                p_FacMotivoExceso = row("FacTipoMotivoExceso")                
            End If
        End If
    End Sub

    Public Sub prl_ValidarRegimen(sender As Object, e As System.EventArgs)
        Dim edit As LookUpEdit = TryCast(sender, LookUpEdit)
        Dim rowView As DataRowView = TryCast(edit.Properties.GetDataSourceRowByKeyValue(edit.EditValue), DataRowView)
        If rowView IsNot Nothing Then
            Dim row As DataRow = rowView.Row
            If Not row Is Nothing Then
                p_Regimen = row("FacRegimen")
            End If
        End If
    End Sub

    Public Sub prl_ValidarGrid(sender As Object, e As DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs)
        Try
            Dim View As GridView = CType(sender, GridView)
            'MsgBox("Validar Grid " & View.FocusedColumn.FieldName)
            Dim oFlgRetorno = Convert.ToBoolean(View.GetRowCellValue(View.FocusedRowHandle, "FlgRetorno"))
            If oFlgRetorno Then
                e.Valid = False
                e.ErrorText = String.Format(" No puede modificar datos si ya esta con reserva de retorno ...{0} (ESC) para restaurar valores ", Constants.vbCrLf)
                Return
            End If
            If View.FocusedColumn.FieldName = "MotExceso" Then
                View.SetRowCellValue(View.FocusedRowHandle, "FacExceso", p_FacMotivoExceso)
                Dim oDiasEnContraRet As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasEnContraRet"))
                Dim oDiasPendientes As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasPendientes"))
                If p_FacMotivoExceso > 0 Then
                    View.SetRowCellValue(View.FocusedRowHandle, "DiasEnContraSalida", (oDiasEnContraRet * p_FacMotivoExceso) - oDiasPendientes)
                End If
            End If
            If View.FocusedColumn.FieldName = "DiasAFavor" Then
                Dim oDiasAFavor As Decimal = Convert.ToDecimal(e.Value)
                Dim oDiasEnContra As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasEnContra"))
                Dim oNoConsiderado As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasNoConsiderado"))
                Dim oDiasTrans As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasTrans"))
                Dim nBase As Decimal = oDiasTrans + oDiasAFavor - oDiasEnContra - oNoConsiderado
                Dim oAdicionales As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasAdicionales"))
                Dim oTotDiaAutorizados As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "TotDiaAutorizados"))
                View.SetRowCellValue(View.FocusedRowHandle, "DiasBase", nBase)
                View.SetRowCellValue(View.FocusedRowHandle, "GozarCalculado", nBase / p_Regimen)
                View.SetRowCellValue(View.FocusedRowHandle, "GozarRedondeado", Math.Round(nBase / p_Regimen, 0))
                View.SetRowCellValue(View.FocusedRowHandle, "SaldoDias", (nBase / 2.5) - Math.Round(nBase / p_Regimen, 0))
                View.SetRowCellValue(View.FocusedRowHandle, "TotDiaCalculados", Math.Round(nBase / p_Regimen, 0) + oAdicionales)
                View.SetRowCellValue(View.FocusedRowHandle, "DiasPendientes", (Math.Round(nBase / p_Regimen, 0) + oAdicionales) - oTotDiaAutorizados)
            End If
            If View.FocusedColumn.FieldName = "DiasEnContra" Then
                Dim oDiasEnContra As Decimal = Convert.ToDecimal(e.Value)
                Dim oDiasAFavor As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasAFavor"))
                Dim oNoConsiderado As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasNoConsiderado"))
                Dim oDiasTrans As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasTrans"))
                Dim oAdicionales As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasAdicionales"))
                Dim oTotDiaAutorizados As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "TotDiaAutorizados"))
                Dim nBase As Decimal = oDiasTrans + oDiasAFavor - oDiasEnContra - oNoConsiderado
                View.SetRowCellValue(View.FocusedRowHandle, "DiasBase", nBase)
                View.SetRowCellValue(View.FocusedRowHandle, "GozarCalculado", (nBase) / p_Regimen)
                View.SetRowCellValue(View.FocusedRowHandle, "GozarRedondeado", Math.Round((nBase) / p_Regimen, 0))
                View.SetRowCellValue(View.FocusedRowHandle, "SaldoDias", (nBase / 2.5) - Math.Round((nBase) / p_Regimen, 0))
                View.SetRowCellValue(View.FocusedRowHandle, "TotDiaCalculados", Math.Round(nBase / p_Regimen, 0) + oAdicionales)
                View.SetRowCellValue(View.FocusedRowHandle, "DiasPendientes", (Math.Round(nBase / p_Regimen, 0) + oAdicionales) - oTotDiaAutorizados)
            End If
            If View.FocusedColumn.FieldName = "DiasNoConsiderado" Then
                Dim oNoConsiderado As Decimal = Convert.ToDecimal(e.Value)
                Dim oDiasEnContra As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasEnContra"))
                Dim oDiasAFavor As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasAFavor"))
                Dim oDiasTrans As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasTrans"))
                Dim oAdicionales As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasAdicionales"))
                Dim oTotDiaAutorizados As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "TotDiaAutorizados"))
                Dim nBase As Decimal = oDiasTrans + oDiasAFavor - oDiasEnContra - oNoConsiderado
                View.SetRowCellValue(View.FocusedRowHandle, "DiasBase", nBase)
                View.SetRowCellValue(View.FocusedRowHandle, "GozarCalculado", (nBase) / p_Regimen)
                View.SetRowCellValue(View.FocusedRowHandle, "GozarRedondeado", Math.Round((nBase) / p_Regimen, 0))
                View.SetRowCellValue(View.FocusedRowHandle, "SaldoDias", (nBase / 2.5) - Math.Round((nBase) / p_Regimen, 0))
                View.SetRowCellValue(View.FocusedRowHandle, "TotDiaCalculados", Math.Round(nBase / p_Regimen, 0) + oAdicionales)
                View.SetRowCellValue(View.FocusedRowHandle, "DiasPendientes", (Math.Round(nBase / p_Regimen, 0) + oAdicionales) - oTotDiaAutorizados)
            End If
            If View.FocusedColumn.FieldName = "FchRetorno" Then
                Dim oFchRetorno As DateTime = Convert.ToDateTime(e.Value)
                Dim oFechaLlegada As DateTime = Convert.ToDateTime(View.GetRowCellValue(View.FocusedRowHandle, "FechaLlegada"))
                Dim nDias As Integer
                nDias = DateDiff(DateInterval.Day, oFechaLlegada, oFchRetorno) + 1
                View.SetRowCellValue(View.FocusedRowHandle, "DiasTrans", nDias)
                Dim oDiasAFavor As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasAFavor"))
                Dim oDiasEnContra As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasEnContra"))
                Dim oNoConsiderado As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasNoConsiderado"))
                Dim oAdicionales As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasAdicionales"))
                Dim oTotDiaAutorizados As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "TotDiaAutorizados"))
                Dim nBase As Decimal = nDias + oDiasAFavor - oDiasEnContra - oNoConsiderado
                View.SetRowCellValue(View.FocusedRowHandle, "DiasBase", nBase)
                View.SetRowCellValue(View.FocusedRowHandle, "GozarCalculado", (nBase) / p_Regimen)
                View.SetRowCellValue(View.FocusedRowHandle, "GozarRedondeado", Math.Round((nBase) / p_Regimen, 0))
                View.SetRowCellValue(View.FocusedRowHandle, "SaldoDias", (nBase / 2.5) - Math.Round((nBase) / p_Regimen, 0))
                View.SetRowCellValue(View.FocusedRowHandle, "TotDiaCalculados", Math.Round(nBase / p_Regimen, 0) + oAdicionales)
                View.SetRowCellValue(View.FocusedRowHandle, "DiasPendientes", (Math.Round(nBase / p_Regimen, 0) + oAdicionales) - oTotDiaAutorizados)
            End If
            If View.FocusedColumn.FieldName = "DiasAdicionales" Then
                Dim oAdicionales As Decimal = Convert.ToDecimal(e.Value)
                Dim oNoConsiderado As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasNoConsiderado"))
                Dim oDiasEnContra As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasEnContra"))
                Dim oDiasAFavor As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasAFavor"))
                Dim oDiasTrans As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasTrans"))
                Dim oTotDiaAutorizados As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "TotDiaAutorizados"))
                Dim nBase As Decimal = oDiasTrans + oDiasAFavor - oDiasEnContra - oNoConsiderado
                View.SetRowCellValue(View.FocusedRowHandle, "DiasBase", nBase)
                View.SetRowCellValue(View.FocusedRowHandle, "GozarCalculado", (nBase) / p_Regimen)
                View.SetRowCellValue(View.FocusedRowHandle, "GozarRedondeado", Math.Round((nBase) / p_Regimen, 0))
                View.SetRowCellValue(View.FocusedRowHandle, "SaldoDias", (nBase / 2.5) - Math.Round((nBase) / p_Regimen, 0))
                View.SetRowCellValue(View.FocusedRowHandle, "TotDiaCalculados", Math.Round(nBase / p_Regimen, 0) + oAdicionales)
                View.SetRowCellValue(View.FocusedRowHandle, "DiasPendientes", (Math.Round(nBase / p_Regimen, 0) + oAdicionales) - oTotDiaAutorizados)
            End If
            If View.FocusedColumn.FieldName = "TotDiaAutorizados" Then
                Dim oTotDiaAutorizados As Decimal = Convert.ToDecimal(e.Value)
                Dim oNoConsiderado As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasNoConsiderado"))
                Dim oDiasEnContra As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasEnContra"))
                Dim oDiasAFavor As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasAFavor"))
                Dim oDiasTrans As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasTrans"))
                Dim oAdicionales As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasAdicionales"))
                Dim nBase As Decimal = oDiasTrans + oDiasAFavor - oDiasEnContra - oNoConsiderado
                View.SetRowCellValue(View.FocusedRowHandle, "DiasBase", nBase)
                View.SetRowCellValue(View.FocusedRowHandle, "GozarCalculado", (nBase) / p_Regimen)
                View.SetRowCellValue(View.FocusedRowHandle, "GozarRedondeado", Math.Round((nBase) / p_Regimen, 0))
                View.SetRowCellValue(View.FocusedRowHandle, "SaldoDias", (nBase / 2.5) - Math.Round((nBase) / p_Regimen, 0))
                View.SetRowCellValue(View.FocusedRowHandle, "TotDiaCalculados", Math.Round(nBase / p_Regimen, 0) + oAdicionales)
                View.SetRowCellValue(View.FocusedRowHandle, "DiasPendientes", (Math.Round(nBase / p_Regimen, 0) + oAdicionales) - oTotDiaAutorizados)
                Dim oFchRetorno As DateTime = Convert.ToDateTime(View.GetRowCellValue(View.FocusedRowHandle, "FchRetorno"))
                Dim oRetProgramado As DateTime = oFchRetorno.AddDays(oTotDiaAutorizados)
                View.SetRowCellValue(View.FocusedRowHandle, "RetProgramado", oRetProgramado)
            End If
            If View.FocusedColumn.FieldName = "RetReal" Then
                Dim oRetReal As DateTime = Convert.ToDateTime(e.Value)
                Dim oRetProgramado As DateTime = Convert.ToDateTime(View.GetRowCellValue(View.FocusedRowHandle, "RetProgramado"))
                Dim oDiasPendientes As Decimal = Convert.ToDecimal(View.GetRowCellValue(View.FocusedRowHandle, "DiasPendientes"))
                Dim nDiasAFavor As Integer = DateDiff(DateInterval.Day, oRetReal, oRetProgramado)
                If nDiasAFavor >= 0 Then
                    View.SetRowCellValue(View.FocusedRowHandle, "DiasAFavorRet", nDiasAFavor)
                Else
                    View.SetRowCellValue(View.FocusedRowHandle, "DiasAFavorRet", 0)
                End If
                Dim nDiasEnContra As Integer = DateDiff(DateInterval.Day, oRetProgramado, oRetReal) + oDiasPendientes
                If nDiasEnContra >= 0 Then
                    View.SetRowCellValue(View.FocusedRowHandle, "DiasEnContraRet", nDiasEnContra)
                Else
                    View.SetRowCellValue(View.FocusedRowHandle, "DiasEnContraRet", 0)
                End If
                If nDiasAFavor > 0 Then
                    View.SetRowCellValue(View.FocusedRowHandle, "DiasAFavorSalida", nDiasAFavor + oDiasPendientes)
                End If
            End If
        Catch ex As Exception
        End Try
    End Sub

    Public Sub prl_ClickReserva(sender As Object, e As DevExpress.XtraEditors.Controls.ButtonPressedEventArgs)
        If ModMov_Personal1.AdvBandedGridView1.RowCount > 0 Then
            Dim Rows As New ArrayList()
            Rows.Add(ModMov_Personal1.AdvBandedGridView1.GetDataRow(ModMov_Personal1.AdvBandedGridView1.GetSelectedRows()(0)))
            Dim Row As DataRow = CType(Rows(0), DataRow)
            If Not Row Is Nothing Then
                If oMovimiento.pr_RecuperarFlagRetorno(Row("CodMovimiento")) Then
                    MsgBox(" Ya se confirmo el Retorno del Pasajero ", MsgBoxStyle.Information)
                    Return
                Else
                    If IsDBNull(Row("RetProgramado")) Then
                        MsgBox(" Error en la fecha de retorno ", MsgBoxStyle.Critical)
                        Return
                    End If               

                    If IsDBNull(Row("CodLugarDestino")) Or Row("CodLugarDestino") Is String.Empty Then
                        MsgBox(" Falta ingresar lugar de destino ", MsgBoxStyle.Critical)
                        Return
                    End If
                    Dim oDialogResult As DialogResult
                    Using sfrmChk As New frmChk_ArriboMessage() With {.Text = " Confirmar Reserva del Pasajero "}
                        ' Asignar datos del Movimiento Personal
                        _MovimientoBE.CodMovimiento = Row("CodMovimiento")
                        _MovimientoBE.CodLugarDestino = Row("CodLugarDes")
                        _MovimientoBE.CodRegimen = Row("CodRegimen")
                        _MovimientoBE.CodReserva = Row("CodReserva")
                        _MovimientoBE.DiasAdicionales = Row("DiasAdicionales")
                        _MovimientoBE.DiasAFavor = Row("DiasAFavor")
                        _MovimientoBE.DiasAFavorRet = Row("DiasAFavorRet")
                        _MovimientoBE.DiasAFavorSalida = Row("DiasAFavorSalida")
                        _MovimientoBE.DiasBase = Row("DiasBase")
                        _MovimientoBE.DiasEnContra = Row("DiasEnContra")
                        _MovimientoBE.DiasEnContraRet = Row("DiasEnContraRet")
                        _MovimientoBE.DiasEnContraSalida = Row("DiasEnContraSalida")
                        _MovimientoBE.DiasNoConsiderado = Row("DiasNoConsiderado")
                        _MovimientoBE.DiasPendientes = Row("DiasPendientes")
                        _MovimientoBE.DiasTranscurridos = Row("DiasTrans")
                        _MovimientoBE.EstMovimiento = Row("EstMovimiento")
                        _MovimientoBE.FacExceso = IIf(IsDBNull(Row("FacExceso")), 0.0, Row("FacExceso"))
                        _MovimientoBE.FchRetorno = Row("FchRetorno")
                        _MovimientoBE.FchViaje = Row("FechaLlegada")
                        _MovimientoBE.FlgRetorno = True
                        _MovimientoBE.GozarCalculado = Row("GozarCalculado")
                        _MovimientoBE.GozarRedondeado = Row("GozarRedondeado")
                        _MovimientoBE.MotExceso = IIf(IsDBNull(Row("MotExceso")), "", Row("MotExceso"))
                        _MovimientoBE.NroDocumentoId = Row("NroDocumentoId")
                        _MovimientoBE.ObsMovimiento = Row("ObsMovimiento")
                        _MovimientoBE.RetProgramado = Row("RetProgramado")
                        _MovimientoBE.RetReal = IIf(IsDBNull(Row("RetReal")), "", Row("RetReal"))
                        _MovimientoBE.SaldoDias = Row("SaldoDias")
                        _MovimientoBE.TotDiaAutorizados = Row("TotDiaAutorizados")
                        _MovimientoBE.TotDiaCalculados = Row("TotDiaCalculados")
                        sfrmChk.npMain.Text = String.Format(" Se procedera a confirmar la reserva del pasajero {0}{1} {2} {3}{0}", Constants.vbCrLf, Row("AppPasajero"), Row("ApmPasajero"), Row("NomPasajero"))
                        oDialogResult = sfrmChk.ShowDialog()
                        If oDialogResult = System.Windows.Forms.DialogResult.OK Then
                            p_CodPasajero = oPasajero.pr_TraerCodigo(Row("NroDocumentoId"))
                            If p_CodPasajero > 0 Then
                                MPasajeroBE = oPasajero.pr_TraerPasajero(p_CodPasajero)
                                vReservaBE = vReservaBL.pr_TraerReserva(Row("CodReserva"))
                                vReservaBE.FchReserva = DateTime.Now
                                vReservaBE.TipPasajero = "1"
                                vReservaBE.FchViaje = Row("FchRetorno")
                                vReservaBE.MotivoViaje = "998" ' Pasajero abordo en el Aeropuerto
                                vReservaBE.CodAnalisis = MPasajeroBE.CodAnalisis
                                vReservaBE.CodComunidad = ""
                                vReservaBE.CodCentroCosto = vReservaBE.CodCentroCosto
                                vReservaBE.PsoEquipajePasajero = 5
                                vReservaBE.EstadoReserva = "2"   ' Habilitado
                                vReservaBE.FlgRequisitos = False
                                vReservaBE.FchRetorno = Row("RetReal")
                                vReservaBE.FlgPermiso = False
                                vReservaBE.CodPasajero = p_CodPasajero
                                vReservaBE.CodLugarReserva = Row("CodLugarDestino")
                                vReservaBE.ObsReserva = "Pasajero reservado desde el movimiento de personal "
                                vReservaBE.PctCentroCosto = MPasajeroBE.PctCentroCosto
                                vReservaBE.CodCentroCosto2 = MPasajeroBE.CodCentroCosto2
                                vReservaBE.FlgSctrSalud = False
                                vReservaBE.FchSctrSalud = DateTime.Now
                                vReservaBE.FlgSctrPension = False
                                vReservaBE.FchSctrPension = DateTime.Now
                                vReservaBE.FlgExamenAltitud = False
                                vReservaBE.FchExamenAltitud = DateTime.Now
                                vReservaBE.FlgAsumeMarsa = True
                                vReservaBE.FlgPrestamo = False
                                vReservaBE.FlgResRetorno = False
                                vReservaBE.FlgNew = False
                                vReservaBE.FlgResPasajero = False
                                vReservaBE.CodCreadopor = p_coduser
                                vReservaBE.FchCreado = DateTime.Now
                                vReservaBE.CodModificadopor = p_coduser
                                vReservaBE.FchModificado = DateTime.Now
                                If vReservaBL.pr_CrearReserva(vReservaBE) Then
                                    p_CodReservaRetorno = vReservaBL.pr_RecuperarReservaPorDNI(Row("NroDocumentoId"), Row("FchRetorno"))
                                    _MovimientoBE.CodReservaRetorno = p_CodReservaRetorno
                                    If oMovimiento.pr_ActualizarMovimientoPersonal(_MovimientoBE) Then
                                        MsgBox("La actualización se realizó con éxito...", MsgBoxStyle.Information, "Proceso éxitoso")
                                        Return
                                    End If
                                End If
                            End If
                        End If
                    End Using
                End If
            End If
        End If
    End Sub

    Private Sub prl_CambioRegistro()
        If ModMov_Personal1.AdvBandedGridView1.RowCount > 0 Then
            Dim Rows As New ArrayList()
            Rows.Add(ModMov_Personal1.AdvBandedGridView1.GetDataRow(ModMov_Personal1.AdvBandedGridView1.GetSelectedRows()(0)))
            Dim Row As DataRow = CType(Rows(0), DataRow)
            If Not Row Is Nothing Then
                If Row("FlgRetorno") = True Then
                    BarBtnGrabar.Enabled = False
                Else
                    BarBtnGrabar.Enabled = True
                End If
                p_Regimen = oMaestros.pr_GetFactorRegimen(IIf(IsDBNull(Row("CodRegimen")), "", Row("CodRegimen")))
            End If
        Else
            BarBtnGrabar.Enabled = False
        End If
    End Sub

    Private Sub prl_GrabarMovimiento()
        If ModMov_Personal1.AdvBandedGridView1.RowCount > 0 Then
            Dim Rows As New ArrayList()
            Rows.Add(ModMov_Personal1.AdvBandedGridView1.GetDataRow(ModMov_Personal1.AdvBandedGridView1.GetSelectedRows()(0)))
            Dim Row As DataRow = CType(Rows(0), DataRow)
            If Not Row Is Nothing Then
                ' Asignar datos del Movimiento Personal
                _MovimientoBE.CodMovimiento = Row("CodMovimiento")
                _MovimientoBE.CodLugarDestino = IIf(IsDBNull(Row("CodLugarDes")), "", Row("CodLugarDes"))
                _MovimientoBE.CodRegimen = IIf(IsDBNull(Row("CodRegimen")), "", Row("CodRegimen"))
                _MovimientoBE.CodReserva = Row("CodReserva")
                _MovimientoBE.DiasAdicionales = Row("DiasAdicionales")
                _MovimientoBE.DiasAFavor = Row("DiasAFavor")
                _MovimientoBE.DiasAFavorRet = Row("DiasAFavorRet")
                _MovimientoBE.DiasAFavorSalida = Row("DiasAFavorSalida")
                _MovimientoBE.DiasBase = Row("DiasBase")
                _MovimientoBE.DiasEnContra = Row("DiasEnContra")
                _MovimientoBE.DiasEnContraRet = Row("DiasEnContraRet")
                _MovimientoBE.DiasEnContraSalida = Row("DiasEnContraSalida")
                _MovimientoBE.DiasNoConsiderado = Row("DiasNoConsiderado")
                _MovimientoBE.DiasPendientes = Row("DiasPendientes")
                _MovimientoBE.DiasTranscurridos = Row("DiasTrans")
                _MovimientoBE.EstMovimiento = Row("EstMovimiento")                
                _MovimientoBE.FacExceso = IIf(IsDBNull(Row("FacExceso")), 0.0, Row("FacExceso"))
                _MovimientoBE.FchRetorno = IIf(IsDBNull(Row("FchRetorno")), "", Row("FchRetorno"))
                _MovimientoBE.FchViaje = IIf(IsDBNull(Row("FechaLlegada")), "", Row("FechaLlegada"))
                _MovimientoBE.FlgRetorno = False
                _MovimientoBE.GozarCalculado = Row("GozarCalculado")
                _MovimientoBE.GozarRedondeado = Row("GozarRedondeado")
                _MovimientoBE.MotExceso = IIf(IsDBNull(Row("MotExceso")), "", Row("MotExceso"))
                _MovimientoBE.NroDocumentoId = Row("NroDocumentoId")
                _MovimientoBE.ObsMovimiento = IIf(IsDBNull(Row("ObsMovimiento")), "", Row("ObsMovimiento"))
                _MovimientoBE.RetProgramado = IIf(IsDBNull(Row("RetProgramado")), "", Row("RetProgramado"))
                _MovimientoBE.RetReal = IIf(IsDBNull(Row("RetReal")), "", Row("RetReal"))
                _MovimientoBE.SaldoDias = Row("SaldoDias")
                _MovimientoBE.TotDiaAutorizados = Row("TotDiaAutorizados")
                _MovimientoBE.TotDiaCalculados = Row("TotDiaCalculados")
                If oMovimiento.pr_ActualizarMovimientoPersonal(_MovimientoBE) Then
                    MsgBox("La actualización se realizó con éxito...", MsgBoxStyle.Information, "Proceso éxitoso")
                    Return
                End If
            End If
        End If
    End Sub

End Class